package com.zxg.androidbuslearn

import android.app.AlertDialog
import android.content.BroadcastReceiver
import android.content.Context
import android.content.DialogInterface
import android.content.Intent
import android.os.Build
import android.view.WindowManager

/**
 * 作者: 赵小刚
 * 生成时间: 2018/11/5.
 * 版本: 1.0
 * 简介:
 * 修改记录:
 */
class LoginBReceiver: BroadcastReceiver() {
    // 本地广播： 1.本地广播无法通过静态注册来接收!相比起系统全局广播更加高效
    override fun onReceive(context: Context?, intent: Intent?) {
        BaseActivity.finishAll()
        var newIntent = Intent(context, LoginActivity::class.java)
        //  本地广播： 2.在广播中启动Activity的话，需要为intent加入FLAG_ACTIVITY_NEW_TASK的标记，不然会报错，因为需要一个栈来存放新打开的Activity
        newIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
        context!!.startActivity(newIntent)
        // 需要先申请弹框权限
//        val dialogBuilder = AlertDialog.Builder(context)
//                .setTitle("警告：")
//                .setMessage("您的账号在别处登录，请重新登录~")
//                .setCancelable(false)
//                .setPositiveButton("确定", DialogInterface.OnClickListener { dialog, which ->
//                    BaseActivity.finishAll()
//                    var newIntent = Intent(context, LoginActivity::class.java)
//                    //  本地广播： 2.在广播中启动Activity的话，需要为intent加入FLAG_ACTIVITY_NEW_TASK的标记，不然会报错，因为需要一个栈来存放新打开的Activity
//                    newIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
//                    context!!.startActivity(newIntent)
//                }).create()
//        //  本地广播：  3.广播中弹出AlterDialog的话，需要设置对话框的类型为TYPE_SYSTEM_ALERT不然无法弹出的~
//        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M){ // 6.0
//            dialogBuilder.window.setType(WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY)
//        }else {
//            dialogBuilder.window.setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT)
//        }
//        dialogBuilder.show()
    }
}